freeslot("MT_FLAMETHROWER", "MT_LB_BULLET", "S_FLAMETHROWER", "S_LB_BULLET", "SPR_TROW")

addHook("MobjSpawn", function(mo)
mo.spritexscale = FRACUNIT/2
mo.spriteyscale = FRACUNIT/2
end, MT_LB_BULLET)

addHook("MobjThinker", function(mo)
	if mo
	and mo.valid
	and mo.type == MT_FLAMETHROWER
	and mo.health
		if mo.shoottime == nil
			if mo.spawnpoint
				if (mo.spawnpoint.options & MTF_OBJECTSPECIAL)
					if (mo.eflags & MFE_VERTICALFLIP)
					mo.z = $1 - 16*FRACUNIT
					else
					mo.z = $1 + 16*FRACUNIT
					end
				end
				if mo.spawnpoint.extrainfo
				mo.shoottime = (TICRATE/4)*mo.spawnpoint.extrainfo
				else
				mo.shoottime = TICRATE
				end
			end
			if leveltime > TICRATE
			mo.shoottime = TICRATE
			end
		end
		if mo.shoottime > 0
		mo.shoottime = $1 - 1
		elseif mo.shoottime <= 0
		P_SPMAngle(mo, MT_LB_BULLET, mo.angle)
		mo.shoottime = TICRATE
		end
		if mo.decor == nil
		mo.decor = P_SpawnMobj(mo.x, mo.y, mo.z, MT_THOK)
		elseif mo.decor
		and mo.decor.valid
		local gotox = mo.x+FixedMul(cos(mo.angle+ANGLE_180), mo.radius-2*FRACUNIT)
		local gotoy = mo.y+FixedMul(sin(mo.angle+ANGLE_180), mo.radius-2*FRACUNIT)
		P_SetOrigin(mo.decor, gotox, gotoy, mo.z)
		mo.decor.state = S_FLAMETHROWER
		mo.decor.angle = mo.angle+ANGLE_90
		end
	end
end, MT_FLAMETHROWER)

addHook("MobjThinker", function(mo)
	if mo
	and mo.valid
	and mo.type == MT_LB_BULLET
	local radius = FixedInt(mo.radius)
	local height = FixedInt(mo.height)
	local thok = P_SpawnMobj(mo.x+P_RandomRange(-radius, radius)*FRACUNIT, mo.y+P_RandomRange(-radius, radius)*FRACUNIT, mo.z+P_RandomRange(0, height)*FRACUNIT, MT_THOK)
	thok.state = S_SPINDUST_FIRE1
	end
end, MT_LB_BULLET)